package com.yuandian.customer.perception.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.customer_perception.po.BasePortraitParams;
import com.yuandian.api.customer_perception.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 画像
 *
 * @author lixin
 * @since 2022-04-24
 */
@Mapper
public interface BasePortraitMapper {

    /**
     * 单位画像-事项办理概览( 默认按照成功率降序排序 )
     */
    IPage<MatterProcessOverrideVO> queryPortraitOverview(Page<MatterProcessOverrideVO> page,
														 @Param("params") BasePortraitParams params,
														 @Param("itemChangeTable") String itemChangeTable);

    /**
     * 单位画像-办理事项统计
     */
    IPage<MatterProcessStatisticsVO> queryMatterProcessStatistics(Page<MatterProcessStatisticsVO> page,
                                                                  @Param("params") BasePortraitParams params,
                                                                  @Param("itemChangeTable") String itemChangeTable);

    /**
     * 单位画像-办理事项明细
     */
    IPage<MatterProcessDetailVO> queryMatterProcessDetail(Page<MatterProcessDetailVO> page,
														  @Param("params") BasePortraitParams params,
														  @Param("itemChangeTable") String itemChangeTable);

    /**
     * 单位画像-办理事项步骤明细
     */
    IPage<MatterProcessStepDetailVO> queryMatterProcessStepDetail(Page<UserOpertorStepOverrideVO> page, @Param("params") BasePortraitParams params,
																  @Param("tableList") List<String> tableList);

    /**
     * 单位画像-用户操作步骤概况
     */
    IPage<UserOpertorStepOverrideVO> queryUserOperationStepOverview(Page<UserOpertorStepOverrideVO> page,
                                                                    @Param("params") BasePortraitParams params,
                                                                    @Param("tableList") List<String> tableList,
                                                                    @Param("itemChangeTable") String itemChangeTable);

    /**
     * 单位画像-事项列表
     */
    List<MatterInfoVO> queryMatterName(@Param("params") BasePortraitParams params,
                                       @Param("itemChangeTable") String itemChangeTable);

    /**
     * 单位画像-获取产生告警的步骤id
     */
    List<String> queryStepIds(@Param("params") BasePortraitParams params);

}
